package cn.wolfcode.service;

import cn.wolfcode.domain.SeckillProductVo;

import java.util.List;


public interface ISeckillProductService {

    /**
     * 根据时间场次查询秒杀商品列表
     * @param time 场次
     */
    List<SeckillProductVo> querySeckillProductByTime(int time);

    /**
     * 根据指定场次查询秒杀商品列表
     * @param time 场次
     */
    List<SeckillProductVo> queryByTime(int time);

    /**
     * 根据场次和秒杀商品id查询商品详情
     * @param time 场次
     * @param seckillId 秒杀商品id
     */
    SeckillProductVo find(int time, Long seckillId);

    /**
     * 减少秒杀商品真实库存
     * @return 更新数据库的条数
     */
    int decrStockCount(Long seckillId);

    /**
     * 根据秒杀商品id,回补真实库存
     * @param seckillId 秒杀商品id
     */
    void stockCountBack(Long seckillId);


    /**
     * 秒杀失败回补预库存业务
     * @param seckillId 秒杀商品id
     * @param time 场次
     */
    void syncRedisStockCount(Long seckillId, Integer time);
}
